1. Field of the Disclosure
The present disclosure generally relates to a design of a storage system and its access methods, and more particularly to a flash memory storage system and its access methods.
2. Description of the Related Art
Storage systems store various types of data including images, videos, programs, databases, etc. Therefore, storage systems need to guarantee a certain degree of data reliability. That is, users will not accept storage systems where data stored inside the storage system can be easily lost or have errors. The metrics used to evaluate data reliability of storage systems include unrecoverable bit error rate (“UBER,” also known as uncorrectable bit error rate) and data retention. Throughout the disclosure, U and T will be used to denote the required UBER and data retention, respectively. That is, for each data bit written into storage systems, the chance that the bit is erroneous is required to be lower than U throughout the period of T after the bit is written.
Recently, non-volatile memory (“NVM”) has been widely used in storage systems as a portion or all of the storage media. For example, solid state drives (“SSD”) completely use NVM to construct the storage media, and hybrid disks and hybrid arrays use both NVM and hard disks to construct the storage media. NVMs can serve as both storage memory to store data and caches for the hard disk in a hybrid storage system to increase the data access performance. SSD cache cards can also be installed in the server side or the storage side to use the NVM as the cache of the storage system.
Non-volatile memory includes various types of memory technologies including Flash memory, phase-change memory (“PCM”), memristor, spin transfer torque RAM (“STT-RAM”), etc. Among the NVM mentioned above, Flash memory is the most widely used memory technology in storage systems nowadays.
Non-volatile memory in storage systems also needs to guarantee a certain degree of data reliability (i.e., data retention and UBER). For example, according to industrial standards, the data retention may need to be higher than 3 months, 1 year, or even 10 years, and the UBER needs to be lower than a value between 10−13 and 10−16. However, such degree of data reliability is generally achieved at the expense of performance, lifetime, and/or cost. In order to achieve long data retention and low UBER, NAND Flash has a longer write latency and limited endurance and requires a complicated data encoding scheme. For example, in a recent Flash specification, the write latency has increased from 0.2 ms to 1.3 ms; the endurance has decreased from 100,000 times to only 3,000 times; and the required strength of the error correction code (“ECC”) has increased from correcting 4 bits of errors in every 528 bytes of data to correcting 24 bits of errors in every 1080 bytes of data. Even more complex ECCs such as low density parity check codes (“LDPC codes”) may also be required. A complex ECC has disadvantages of increasing the data size, complicating the encode/decode hardware, increasing the hardware cost, lengthening the encode/decode time, and increasing the power consumption, each of which contribute to high cost, poor performance, and limited lifetime for a storage system.
Therefore, a new storage system and access methods that can lower the cost or increase the lifetime and the performance of the system while keeping the data reliability are desired.